<#include "/@inc/uiMacros.ftl">
<#include "/@inc/funcMacros.ftl">
<#include "/@inc/copyright.txt">
<#assign className = TriaGram + Prefix + LateType + "Dlg">
<#assign intfName = TriaGram + "I" + Prefix + LateType>
<#assign baseName = TriaGram + Prefix + LateType>
<@pp.renameOutputFile name=className+".h">
</@pp.renameOutputFile>
#ifndef ${className}_H
#define ${className}_H

<@UI_ELEMENTS_DATA_TYPES Attributes  />

#include "CATDlgDialog.h"   // To derive from
class  CATDlgSelectorList;  // a dialog object used in the dialog box
class  CATDlgLabel;         // a dialog object used in the dialog box

class ${className}: public CATDlgDialog
{
  //
  // In the Cnext/resources/msgcatalog you have :
  //     ${className}.CATNls
  //
  DeclareResource(${className},CATDlgDialog) ;

  public :

    // Constructor
    ${className}(CATDialog *iParent);
    virtual ~${className}();

    // Build
    // ------
    // Constructs the dialog objects inside the dialog box
    //
    void Build();

  private :

    // Default constructor, not implemented
    // Set as private to prevent from compiler automatic creation as public.
    ${className} ();

    // Copy constructor, not implemented
    // Set as private to prevent from compiler automatic creation as public.
    ${className}(const ${className} &iObjectToCopy);

    // Assignment operator, not implemented
    // Set as private to prevent from compiler automatic creation as public.
    ${className} & operator = (const ${className} &iObjectToCopy);

    virtual void EditorSelect (CATCommand *, CATNotification* , CATCommandClientData data);

<#-- Return all NON-PARAM string, double, boolean and int data types -->
<#list Attributes as attrib>
<#switch attrib.type >
<#case "tk_boolean"><#t>
<#case "tk_integer"><#t>
<#case "tk_double"><#t>
<#case "tk_string"><#t>
<@ADD_GET_FUNC_DECL_COMMON attr=attrib ftype =";"/>
<#break>
</#switch>
</#list>

<#-- Return the UI ELements -->
<#list Attributes as attrib>
<#list uiElements as uiElem> <#if uiElem.id == attrib.name> <#assign x = uiElem> <#break></#if></#list>
<#switch attrib.ui>
<#case "">
<#break>
<#case "List">
<#case "BiList">
${x.dlg} * Get${attrib.name}List()   const ;
<#break>
<#default >
${x.dlg} * Get${x.name}()   const ;
<#break>
</#switch>
</#list>

  private :

<@DECLARE_UI_VARS uiElements />

};
#endif

